home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <stat.h>
-
- #define REGFILE (ST_HIDDEN|ST_SYSTEM|ST_DIRECT)
- #define SET_DTA 0x1a
- #define FIND_FIRST 0x4e
- #define FIND_NEXT 0x4f
-
- struct dirent {
- char rsvd[21];
- char attr;
- short ftime;
- short fdate;
- long fsize;
- char fname[13];
- };
- /* wildcard filename lookup */
- filedir(name,times,ret_str)
- char *name;
- int times;
- char *ret_str;
- {
- register char *cp,*cp1;
- static struct dirent sbuf;
-
- bdos(SET_DTA,&sbuf); /* Set disk transfer address */
- /* Find matching file */
- if(dos(times == 0 ? FIND_FIRST:FIND_NEXT,0,REGFILE,name,0,0) == -1)
- sbuf.fname[0] = '\0';
-
- /* Copy result to output, forcing to lower case */
- for(cp = ret_str,cp1 = sbuf.fname; cp1 < &sbuf.fname[13] && *cp1 != '\0';)
- *cp++ = tolower(*cp1++);
- *cp = '\0';
- }
-